Digital data are often transmitted across networks from a transmitter (e.g., server) to a receiver (e.g., client). Such data transmission operations can take a wide variety of forms, such as the requesting of a user data file from a remote mass storage location, the requesting of access to an Internet webpage, the downloading of application software for installation onto the client system, etc. Such transmissions can take place across a local area network (LAN), a wireless network, a wide-area network (WAN), across the Internet, or a combination of the above.
It is often desirable to authenticate such data transmissions from either the sending or receiving side. For example, the transmitter may wish to restrict access to only authorized individuals, or may wish to ensure that the transmitted content cannot be subsequently re-transmitted by the receiver to a third party. Similarly, the receiver may wish to ensure that the requested data are in fact authentic and not from an unauthorized source.